Many 3D games and other graphical displays allow the user some flexibility in changing the viewpoint from which the 3D virtual world is viewed. Just like the way authors write novels in different voices, video games can be created to view a three-dimensional virtual world from either a “third person viewpoint” or a “first person viewpoint.” In “third person viewpoint” games, a virtual camera is located within the three-dimensional space at a position from which the game player can see and hear all of the action. “First person viewpoint” games show the action from the viewpoint of a character within the game space who is interacting with other objects and events in the game. Each type of presentation has its advantages. Some games allow the game player to switch between a first person viewpoint and a third person viewpoint.
Some of the more popular first person viewpoint games place the game player at the viewpoint of a combatant in some type of conflict. For example, the game player may see the three-dimensional world through the eyes of a soldier or warrior whose job is to attack and destroy enemies such as for example alien creatures who have invaded a virtual spaceship. Using such first person viewpoint display techniques can create an immersive game play action in which the game player feels as if he or she is within the game.
Some prior first person viewpoint display techniques locate a “virtual camera” within the three-dimensional virtual world at a position corresponding to the head of a game character in the game. Objects within the three-dimensional world are rendered from the perspective of this virtual camera. Just like in the real world, a user can turn his or her head to the left or right or look up or down to see different parts of the virtual world. Changing the direction the virtual camera is aimed reveals different parts of the 3-D world, allowing the game player to “look around” the virtual landscape.
In contexts such as virtual tours of buildings and landscapes, users can change a virtual 3-D camera viewpoint via a web browser and a plug-in such as QuickTime® or Flash® to view a scene from a variety of different viewpoints by moving a mouse controlling a cursor. Many video and computer games allow the game player to operate a pointing control such as a joystick to scroll or otherwise change the virtual camera's viewpoint. Thus, when the user moves the joystick to the right of the image, the display also scrolls or pans to the right of the virtual 3-D world and a player to reveal objects previously out of view.
There have been a number of games for personal computers, arcade games and home video game platforms designed to operate primarily in response to two-dimensional cursor control signals from a mouse, joystick, touchpad or other 2-D directional input device(s). For example, it is common for a combination of a mouse and a keyboard to provide inputs for playing first-person shooter games. In many such games, the X axis of the mouse is used for looking (or turning) left and right, while the Y axis is used for looking up and down.
In such games, the left mouse button is sometimes used to control weapon firing. In many video and computer games, a second joystick or other control is used to control other aspects of game action including for example where a weapon is pointed (i.e., object targeting). Still other controls can be used to control weapon firing or other events.
While traditional arcade and home video games have often provided game players with a range of different handheld controls including single or dual joysticks, push buttons, cross-switches and the like to provide simultaneous control over 3D viewpoint and object/weapon targeting, some new gaming platforms have streamlined and simplified the user interface. For example, Nintendo's WHO home video game system provides a handheld pointing device. The user may point the handheld device at the screen or in other directions. Using optical and/or accelerometer sensors, the Wii game system can detect automatically the direction in which the user is pointing the pointing device, and use this direction as an input to control aspects of video game play. The pointing device can be used to control the position of objects such as (but not limited to) a cursor on the display. Positioning the cursor over an enemy can cause a game character to automatically aim his or her weapon at that enemy. Pressing a “fire” button can then control the game character to fire the weapon at the enemy. It is also possible to control a wide variety of other applications including driving games, flight simulators, adventure games, web browsing, puzzle games, text input and the like.
Other video game platforms use touch screens to control game action. The Nintendo DS portable video game system is one such example. In addition to the normal cross switch or other thumb or finger operated buttons, the Nintendo DS includes a touch screen that can be actuated by the position of a finger or stylus above a display. Some games use the stylus or finger position to control game play action. For example, touching the stylus onto an enemy could cause the game character to aim a weapon at the enemy. Pushing a button or, in some games, leaving the stylus in contact with the image of the enemy for a sufficient period of time could cause a weapon to fire at the enemy. A wide variety of other applications are also possible.
While such simplified user interfaces have many advantages and are highly flexible, they also present some challenges. For example, game players who are used to playing first person viewpoint games on certain platforms have become accustomed to controlling game action with one joystick and controlling viewpoint with a second joystick. In platforms providing a single pointing device, dual pointing or joystick control is not necessarily or always available. While it is possible to choose between a viewpoint control mode and a weapon targeting or other game action control mode, game developers strive for as much realism as possible. In the real world, a person can move his or her head to look at different parts of surroundings at the same time he or she manipulates objects such as aiming a weapon held in the hands. It would be desirable to realistically duplicate these types of real world capabilities through the mechanism of a single pointing device such as an optical pointer and/or accelerometer type sensor.
The technology herein provides an exemplary illustrative non-limiting way to minimize the complexity of user inputs while conveniently allowing the user to control virtual camera panning and other game play action via a common pointing action. Exemplary illustrative non-limiting technology herein allows a player to conveniently control both targeting or other game player character interaction and 3-D viewpoint direction with a common cursor or other pointing action or indicator. To allow a cursor or pointing action to control both a 3-D camera direction and game play targeting within a 3-D video game or other 3-D computer graphics presentation, one exemplary illustrative non-limiting implementation divides the screen into plural zones or regions. In one exemplary illustrative non-limiting implementation, moving the cursor anywhere within a “dead zone” may for example control interaction with video game characters or other objects (e.g., for purposes of weapon targeting or other effects) but does not cause the 3-D camera angle to change. When the cursor is moved outside the “dead zone”, the 3-D camera may change in a predictable and controllable way such as by panning in a direction corresponding to cursor position and/or change in cursor position, and a weapon or other aspect of game play can at the same time continue to make use of the pointing indication for targeting or other purposes.
In one exemplary illustrative non-limiting implementation, the game player can use the same pointing control to control the direction and/or manner of 3D viewpoint changes. For example, the game player can control how fast the 3-D camera pans depends on where the cursor is located on the display. In one exemplary illustrative non-limiting implementation, the 3-D camera pans rapidly when the cursor is in a first zone and pans more slowly when the cursor is in a second zone.
By way of example, without limitation, one exemplary implementation can provide a variable rate of camera angle change based on time encoding. For example, the virtual camera angle can change slowly over an initial period during which a cursor is positioned within a predetermined area of a display and/or 3-D world. The camera angle can change more rapidly after the cursor has been within the predetermined area of the display and/or 3-D world for more than a certain time threshold. Multiple timing thresholds can be applied as desired.
Exemplary illustrative non-limiting advantages include:                Ability to change a targeting reticle on screen independent of camera movement        No need to choose between weapon targeting and viewpoint change        Same pointing control can control both 3D viewpoint and weapon or other targeting        Unobtrusive mode in which pointing control controls only targeting and 3D viewpoint remains unaffected        3D viewpoint panning speed can depend on where the user has positioned a cursor on the screen        customizable sensitivity (so user can program viewpoint change/panning rate)        single joystick or other pointing indicator can be used to control both 3D viewpoint and object targeting.        
Technology herein thus provides, by way of example without limitation, a method of controlling three-dimensional viewpoint panning within a computer graphics display system comprising predefining first and second regions on a display, said first region corresponding to a panning control region, said second region corresponding to a region that does not control panning; displaying a pointing indicia on said display at a position that is at least in part responsive to a user input; and panning the 3-D viewpoint whenever the user positions the cursor within the first region but not when the user positions the cursor within the second region.
The first region can at least in part surrounds the second region.
One can control the rate of panning at least in part in response to the distance the user positions the cursor relative to a center point of the display.
One can control the rate of panning based at least in part on how long the user positions the cursor within the first region.
One may subdivide said first region into plural virtual camera control regions, and control the rate of virtual camera panning based at least in part on which of said plural regions the user positions the cursor within.
One may display a mask image, wherein said mask image at least in part comprises said second region.
One may automatically animate the position of a weapon to aim at cursor-indicated objects.
The weapon can be animated to follow cursor position at the same time as cursor position controls whether or not to pan.
One may control the direction of 3-D pan based at least in part on the position of the cursor relative to a reference point such as the center of the display.
Exemplary illustrative non-limiting technology herein also provides a system for providing an animated display comprising: a display device that displays an image subdivided into plural regions; a cursor control that displays a cursor on said display device; a user input device coupled to said cursor control, said user input device determining the position said cursor is displayed on said display device; and panning control that selectively pans a 3-D viewpoint at least in part defining said image conditioned on which of said regions said cursor is displayed within.
Exemplary illustrative non-limiting technology herein also provides a storage device storing: data at least in part defining a model of a three-dimensional world; a first code segment that subdivides a display region into at least first and second predetermined regions; a second code segment that at least in part controls the position an object is displayed in response to user inputs; and a third code segment that controls panning of a virtual camera 3-D viewpoint to selectively activate 3-D viewpoint panning whenever said object is displayed within a first region and selectively deactivates 3-D viewpoint panning whenever said object is displayed within a second region different from said first region.